/**     
 * @Title: UserServiceImpl.java   
 * @Package com.yitong.service.impl   
 * @Description: TODO
 * @author weiwei 
 * @date 2017年7月20日 下午3:39:52   
 * @version V1.0     
 */
package com.yitong.service.impl;

import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.yitong.bean.UserInfo;
import com.yitong.entity.User;
import com.yitong.mgr.UserMgr;
import com.yitong.service.UserService;
import com.yitong.utils.PropertyUtils;
import com.yitong.utils.RetCode;
import com.yitong.utils.RetResult;
import com.yitong.utils.SessionUtils;
import com.yitong.utils.TokenUtils;

/**
 * @ClassName: UserServiceImpl
 * @Description: TODO
 * @author weiwei
 * @date 2017年7月20日 下午3:39:52
 * 
 */
@Service
public class UserServiceImpl implements UserService {

	@Autowired
	private UserMgr userMgr;

	@Override
	public List<User> findByUserName(String userName) {
		return userMgr.findByUserName(userName);
	}

	@Override
	public RetResult findByEmailAndPassword(String email, String passwd) {
		RetResult retResult = new RetResult();
		if(StringUtils.isNotBlank(email) && StringUtils.isNotBlank(passwd)){
			User user = userMgr.findByEmailAndPassword(email, passwd);
			if(null != user){
				String authcToken = TokenUtils.generateAuthcToken(user.getId(), true);
				UserInfo info = new UserInfo(user.getId()+"", user.getUserName(), user.getEmail(), authcToken);
				retResult.addData(PropertyUtils.PROPERTY_USER_DATA_KEY, info);
				SessionUtils.setAuthcToken(authcToken);
				SessionUtils.setUser(info);
				return retResult;
			}
		}		
		retResult.setCode(RetCode.LOGIN_ERROR);
		retResult.setMsg("登錄失敗,用户名或密码有误");
		return retResult;
	}
}
